﻿namespace Borg
{
    public class SlotPropertyInfo
    {
        private readonly SlotInfo _slot;

        public bool AutoOpen
        {
            get { return _slot.autoOpen; }
            set
            {
                if (AutoOpen == value)
                    return;

                _slot.autoOpen = value;
                _slot.OnPropertyChanged("AutoOpen");
            }
        }

        public bool AutoRegister
        {
            get { return _slot.autoRegister; }
            set
            {
                if (AutoRegister == value)
                    return;

                _slot.autoRegister = value;
                _slot.OnPropertyChanged("AutoRegister");
            }
        }

        public bool AutoPlug
        {
            get { return _slot.autoPlug; }
            set
            {
                if (AutoPlug == value)
                    return;

                _slot.autoPlug = value;
                _slot.OnPropertyChanged("AutoPlug");
            }
        }

        public bool LazyLoad
        {
            get { return _slot.lazyLoad; }
            set
            {
                if (LazyLoad == value)
                    return;

                _slot.lazyLoad = value;
                _slot.OnPropertyChanged("LazyLoad");
            }
        }

        public bool Unique
        {
            get { return _slot.unique; }
            set
            {
                if (Unique == value)
                    return;

                _slot.unique = value;
                _slot.OnPropertyChanged("Unique");
            }
        }

        public bool AutoRelease
        {
            get { return _slot.autoRelease; }
            set
            {
                if (AutoRelease == value)
                    return;

                _slot.autoRelease = value;
                _slot.OnPropertyChanged("AutoRelease");
            }
        }

        public SelectionMode SelectionMode
        {
            get { return _slot.selectionMode; }
            set
            {
                if (SelectionMode == value)
                    return;

                _slot.selectionMode = value;
                _slot.OnPropertyChanged("SelectionMode");
            }
        }

        public SlotPropertyInfo(SlotInfo slot)
        {
            _slot = slot;
        }
    }
}

